---
overviewHeaders: [2, 3]
---

# lib.footer

- **类型：**

```ts
type Footer = {
  js?: string;
  css?: string;
  dts?: string;
};
```

- **默认值：** `{}`

在每个 JavaScript、CSS 或类型声明文件底部注入内容。

## 对象类型

### footer.js

- **类型：** `string`
- **默认值：** `undefined`

在每个 JavaScript 输出文件底部注入内容。

### footer.css

- **类型：** `string`
- **默认值：** `undefined`

在每个 CSS 输出文件底部注入内容。

### footer.dts

- **类型：** `string`
- **默认值：** `undefined`

在每个类型声明输出文件底部注入内容。

## 注意事项

JavaScript 和 CSS 文件中的 footer 内容是基于 Rspack 的 [BannerPlugin](https://rspack.dev/plugins/webpack/banner-plugin) 实现的。你需要注意以下几点：

- 默认启用了 `raw: true`，所以 footer 内容会作为原始字符串注入，而不是包裹在注释中。因此如果你想注入注释，需要自行添加 `/*` 和 `*/` 或其他注释语法。
- `stage` 选项被设置在 JavaScript 和 CSS 文件优化之后的阶段，从而防止 footer 内容被优化掉。

## 自定义 Footer 内容

如果以上默认设置无法满足你的需求，你可以通过 `tools.rspack.plugins` 自定义添加带有相应选项的 [BannerPlugin](https://rspack.dev/plugins/webpack/banner-plugin) 实例。

```ts title="rslib.config.ts"
export default {
  lib: [
    {
      // ...
      tools: {
        rspack: {
          plugins: [
            new rspack.BannerPlugin({
              footer: true,
              // ... options
            }),
          ],
        },
      },
    },
  ],
};
```

:::warning

类型声明文件中的 footer 内容与 JavaScript 和 CSS 文件的处理方式不同。它是直接通过文件系统 API 写入的，所以设置 `BannerPlugin` 不会对其产生影响。

:::
